// 标签页管理模块

import { showToast } from './utils.js';
import dataManager from './dataManager.js';

let currentTab = '首页';

// 设置当前标签页
export function setCurrentTab(tab) {
    currentTab = tab;
}

// 获取当前标签页
export function getCurrentTab() {
    return currentTab;
}

// 添加标签页
export function addTab(data, name) {
    if (!name) return false;
    

    if (name.trim().length === 0 || name.trim().length > 20) {
        showToast('标签页名称需要1-20个字符');
        return false;
    }
    
    if (data.tabs.includes(name)) {
        showToast('标签页名称已存在');
        return false;
    }
    
    data.tabs.push(name);
    data.icons[name] = [];
    currentTab = name;
    
    if (dataManager.saveData(data)) {
        return true;
    }
    return false;
}

// 删除标签页
export function deleteTab(data, tab) {
    // 不允许删除ALL页和首页
    if (tab === 'ALL' || tab === '首页') {
        showToast(tab === 'ALL' ? 'ALL页不能删除' : '首页不能删除');
        return false;
    }
    
    if (data.tabs.length <= 2) return false;
    
    try {
        // 检查是否有导航图标
        if (data.icons[tab] && data.icons[tab].length > 0) {
            if (!confirm(`标签页"${tab}"将被删除，其中的${data.icons[tab].length}个导航图标将被移动到首页，确定继续吗？`)) {
                return false;
            }
            
            // 将图标移动到首页
            const iconsToMove = data.icons[tab];
            data.icons['首页'] = data.icons['首页'].concat(iconsToMove);
        }
        
        const index = data.tabs.indexOf(tab);
        if (index !== -1) {
            data.tabs.splice(index, 1);
            delete data.icons[tab];
            
            // 如果关闭的是当前标签，切换到首页
            if (tab === currentTab) {
                currentTab = '首页';
            }
            
            return true;
        }
    } catch (error) {
        console.error('删除标签页失败:', error);
        showToast('删除标签页失败');
    }
    
    return false;
}

// 重命名标签页
export function renameTab(data, oldName, newName) {
    // 不允许重命名ALL页和首页
    if (oldName === 'ALL' || oldName === '首页') return false;
    
    // 检查名称是否已存在
    if (data.tabs.includes(newName)) {
        showToast('标签页名称已存在');
        return false;
    }
    
    // 检查名称长度
    if (newName.length === 0 || newName.length > 20) {
        showToast('标签页名称需要1-20个字符');
        return false;
    }
    
    // 更新标签页数据
    const index = data.tabs.indexOf(oldName);
    if (index !== -1) {
        data.tabs[index] = newName;
        
        // 更新图标数据
        data.icons[newName] = data.icons[oldName];
        delete data.icons[oldName];
        
        // 如果当前标签页是被重命名的标签，更新currentTab
        if (currentTab === oldName) {
            currentTab = newName;
        }
        
        return true;
    }
    
    return false;
}

// 导出模块
export default {
    setCurrentTab,
    getCurrentTab,
    addTab,
    deleteTab,
    renameTab
};